﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FacProFacu;
using Comun;

namespace Guada
{
    public partial class FrmModUsuario : Plantilla
    {
        public FrmModUsuario()
        {
            InitializeComponent();
        }

        private void FrmModUsuario_Load(object sender, EventArgs e)
        {
            try
            {
                FacProFacu.Usuario usuario = new FacProFacu.Usuario();
                Controles control = new Controles();
                control.CargarCBox(cmbTipoDeUsuario, usuario.GetPerfiles().Tables["PERFIL"], "IDPERFIL", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);
                txtPass.Text = string.Empty;
            }
            catch
            {
                MessageBox.Show("Se ha producido un Error", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private bool validarCampos()
        {
            bool error = true;

            if (cmbTipoDeUsuario.SelectedIndex == 0)
            {
                MgrError.SetError(cmbTipoDeUsuario, "Debe seleccionar un Tipo de Perfil");
                error = false;
            }

            if (txtPass.Text.Length < 4)
            {
                MgrError.SetError(txtPass, "Error Password");
                error = false;
            }

            return error;
        }

        //private void InicializarCombo(string sTexto)
        //{
        //    for (int i = 0; i < cmbTipoDeUsuario.Items.Count; i++)
        //    {
        //        cmbTipoDeUsuario.SelectedValue = i;

        //        if (cmbTipoDeUsuario.Text == sTexto)
        //        {
        //            break;

        //        }
        //    }
        //}

        private void CargarCampos(DataTable Dt)
        {
            txtApellidoNombre.Text = Dt.Rows[0]["nombreusuario"].ToString();
            txtUsuario.Text = Dt.Rows[0]["nomusu"].ToString();
            cmbTipoDeUsuario.SelectedIndex = cmbTipoDeUsuario.FindString(Dt.Rows[0]["perfil"].ToString());
            gpbUsuario.Enabled = true;
            BtnGrabar.Enabled = true;
        }

        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            DataTable Dt = new DataTable();
            Usuario usuario = new Usuario();

            if (txtsUsuario.Text.Trim() != string.Empty)
            {
                Dt = usuario.GetUsuario(txtsUsuario.Text.Trim()).Tables["USUARIO"];
                if (Dt.Rows.Count > 0)
                {
                    CargarCampos(Dt);
                }
                else
                {
                    MessageBox.Show("El usuario buscado No Existe", "BUSQUEDA DE USUARIO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

            }
            else
            {
                FrmBuscarUsuarios BUsuarios = new FrmBuscarUsuarios();
                BUsuarios.ShowDialog(this);
                txtsUsuario.Text = BUsuarios.GetUsuario();

                if (txtsUsuario.Text != string.Empty)
                {
                    Dt = usuario.GetUsuario(txtsUsuario.Text.Trim()).Tables["USUARIO"];
                    if (Dt.Rows.Count > 0)
                    {
                        CargarCampos(Dt);
                    }
                }
            }
        }

        //private void btnBuscar_Click(object sender, EventArgs e)
        //{
        //    DataTable Dt = new DataTable();
        //    Sistema usuario = new Sistema();

        //    if (txtsUsuario.Text.Trim() != string.Empty)
        //    {
        //        Dt = usuario.GetUsuario(txtsUsuario.Text.Trim()).Tables["USUARIO"];
        //        if (Dt.Rows.Count > 0)
        //        {
        //            CargarCampos(Dt);
        //        }
        //        else
        //        {
        //            MessageBox.Show("El usuario buscado No Existe", "BUSQUEDA DE USUARIO", MessageBoxButtons.OK, MessageBoxIcon.Information);
        //        }

        //    }
        //    else
        //    {
        //        FrmBuscarUsuarios BUsuarios = new FrmBuscarUsuarios();
        //        BUsuarios.ShowDialog(this);
        //        txtUsuario.Text = BUsuarios.GetUsuario();

        //        if (txtsUsuario.Text != string.Empty)
        //        {
        //            Dt = usuario.GetUsuario(txtsUsuario.Text.Trim()).Tables["USUARIO"];
        //            if (Dt.Rows.Count > 0)
        //            {
        //                CargarCampos(Dt);
        //            }
        //        }
        //    }
        //}

        private void BtnGrabar_Click(object sender, EventArgs e)
        {
            try
            {
                if (validarCampos())
                {
                    FacProFacu.Usuario usuario = new FacProFacu.Usuario();

                    int modificarUsuario = usuario.GetUsuario(txtUsuario.Text).Tables["USUARIO"].Rows.Count;

                    if (modificarUsuario == 1)
                    {
                        int alta = usuario.ModificacionUsuario(txtApellidoNombre.Text, txtPass.Text, Convert.ToInt16(cmbTipoDeUsuario.SelectedValue), txtUsuario.Text);

                        if (alta > 0)
                        {
                            MessageBox.Show(string.Format("Se ha realizado la modificación del usuario: {0} con exito!", txtApellidoNombre.Text), "ALTA DE USUARIO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                    else
                    {
                        MessageBox.Show(string.Format("El usuario: {0} no esta dado de alta en el sistema.", txtApellidoNombre.Text), "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
            }
            catch
            {
                MessageBox.Show("No se ha realizado el Alta de Usuario", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void BtnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
